[INFO] fetching crate reinhardt-websockets 0.1.0-rc.14...
[INFO] testing reinhardt-websockets-0.1.0-rc.14 against master#1f7f8ea0721a3b1eb73e6c6d25cccb371434b320 for pr-154065-1
[INFO] extracting crate reinhardt-websockets 0.1.0-rc.14 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate reinhardt-websockets 0.1.0-rc.14
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate reinhardt-websockets 0.1.0-rc.14
[INFO] tweaked toml for crates.io crate reinhardt-websockets 0.1.0-rc.14 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate reinhardt-websockets 0.1.0-rc.14 on toolchain 1f7f8ea0721a3b1eb73e6c6d25cccb371434b320
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate reinhardt-websockets 0.1.0-rc.14 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sourcemap v9.3.2
[INFO] [stderr]   Downloaded ravif v0.13.0
[INFO] [stderr]   Downloaded if_chain v1.0.3
[INFO] [stderr]   Downloaded multer v3.1.0
[INFO] [stderr]   Downloaded hostname v0.4.2
[INFO] [stderr]   Downloaded oncemutex v0.1.1
[INFO] [stderr]   Downloaded pg_escape v0.1.1
[INFO] [stderr]   Downloaded slug v0.1.6
[INFO] [stderr]   Downloaded reinhardt-routers-macros v0.1.0-rc.14
[INFO] [stderr]   Downloaded postgres-native-tls v0.5.2
[INFO] [stderr]   Downloaded reinhardt-http v0.1.0-rc.14
[INFO] [stderr]   Downloaded colored v3.1.1
[INFO] [stderr]   Downloaded backon v1.6.0
[INFO] [stderr]   Downloaded reinhardt-forms v0.1.0-rc.14
[INFO] [stderr]   Downloaded tokio-postgres v0.7.16
[INFO] [stderr]   Downloaded reinhardt-manouche v0.1.0-rc.14
[INFO] [stderr]   Downloaded reinhardt-pages-macros v0.1.0-rc.14
[INFO] [stderr]   Downloaded reinhardt-di v0.1.0-rc.14
[INFO] [stderr]   Downloaded reinhardt-conf v0.1.0-rc.14
[INFO] [stderr]   Downloaded reinhardt-middleware v0.1.0-rc.14
[INFO] [stderr]   Downloaded deunicode v1.6.2
[INFO] [stderr]   Downloaded reinhardt-urls v0.1.0-rc.14
[INFO] [stderr]   Downloaded iri-string v0.7.11
[INFO] [stderr]   Downloaded reinhardt-auth v0.1.0-rc.14
[INFO] [stderr]   Downloaded reinhardt-rest v0.1.0-rc.14
[INFO] [stderr]   Downloaded reinhardt-pages v0.1.0-rc.14
[INFO] [stderr]   Downloaded tera v1.20.1
[INFO] [stderr]   Downloaded reinhardt-query v0.1.0-rc.14
[INFO] [stderr]   Downloaded reinhardt-core v0.1.0-rc.14
[INFO] [stderr]   Downloaded chrono-tz v0.9.0
[INFO] [stderr]   Downloaded zip v3.0.0
[INFO] [stderr]   Downloaded reinhardt-views v0.1.0-rc.14
[INFO] [stderr]   Downloaded reinhardt-utils v0.1.0-rc.14
[INFO] [stderr]   Downloaded unsafe-libyaml-norway v0.2.15
[INFO] [stderr]   Downloaded serde_norway v0.9.42
[INFO] [stderr]   Downloaded reinhardt-macros v0.1.0-rc.14
[INFO] [stderr]   Downloaded matchit v0.9.1
[INFO] [stderr]   Downloaded reinhardt-throttling v0.1.0-rc.14
[INFO] [stderr]   Downloaded utoipa-swagger-ui v9.0.2
[INFO] [stderr]   Downloaded reinhardt-pages-ast v0.1.0-rc.14
[INFO] [stderr]   Downloaded reinhardt-server v0.1.0-rc.14
[INFO] [stderr]   Downloaded reinhardt-mail v0.1.0-rc.14
[INFO] [stderr]   Downloaded onig_sys v69.9.1
[INFO] [stderr]   Downloaded postgres-types v0.2.12
[INFO] [stderr]   Downloaded refinery-core v0.9.0
[INFO] [stderr]   Downloaded refinery v0.9.0
[INFO] [stderr]   Downloaded onig v6.5.1
[INFO] [stderr]   Downloaded geo-types v0.7.18
[INFO] [stderr]   Downloaded whoami v2.1.1
[INFO] [stderr]   Downloaded postgres-protocol v0.6.10
[INFO] [stderr]   Downloaded reinhardt-db v0.1.0-rc.14
[INFO] [stderr]   Downloaded refinery-macros v0.9.0
[INFO] [stderr]   Downloaded chrono-tz-build v0.3.0
[INFO] [stderr]   Downloaded syntect v5.3.0
[INFO] [stderr]   Downloaded reinhardt-query-macros v0.1.0-rc.14
[INFO] [stderr]   Downloaded regex-cache v0.2.1
[INFO] [stderr]   Downloaded wasite v1.0.2
[INFO] [stderr]   Downloaded reinhardt-openapi-macros v0.1.0-rc.14
[INFO] [stderr]   Downloaded totp-lite v2.0.1
[INFO] [stderr]   Downloaded phonenumber v0.3.9+9.0.21
[INFO] [stderr]   Downloaded utoipa-swagger-ui-vendored v0.1.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 382648edc777d200cc041d6955a00ea7d4257e0352e0acc7c03d726ee36b947a
[INFO] running `Command { std: "docker" "start" "-a" "382648edc777d200cc041d6955a00ea7d4257e0352e0acc7c03d726ee36b947a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "382648edc777d200cc041d6955a00ea7d4257e0352e0acc7c03d726ee36b947a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "382648edc777d200cc041d6955a00ea7d4257e0352e0acc7c03d726ee36b947a", kill_on_drop: false }`
[INFO] [stdout] 382648edc777d200cc041d6955a00ea7d4257e0352e0acc7c03d726ee36b947a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fa6ad06464c6a0965d38fdf833f93935a42d9e71c36b485ff33d6b396553ef2b
[INFO] running `Command { std: "docker" "start" "-a" "fa6ad06464c6a0965d38fdf833f93935a42d9e71c36b485ff33d6b396553ef2b", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling reinhardt-websockets v0.1.0-rc.14 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.52s
[INFO] running `Command { std: "docker" "inspect" "fa6ad06464c6a0965d38fdf833f93935a42d9e71c36b485ff33d6b396553ef2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fa6ad06464c6a0965d38fdf833f93935a42d9e71c36b485ff33d6b396553ef2b", kill_on_drop: false }`
[INFO] [stdout] fa6ad06464c6a0965d38fdf833f93935a42d9e71c36b485ff33d6b396553ef2b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 91ff8715ef0176080da206ae4989c0d121ee7cc485327bed0534501b19b7b251
[INFO] running `Command { std: "docker" "start" "-a" "91ff8715ef0176080da206ae4989c0d121ee7cc485327bed0534501b19b7b251", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling toml_parser v1.1.0+spec-1.1.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling toml_writer v1.1.0+spec-1.1.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling toml_edit v0.25.8+spec-1.1.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tungstenite v0.28.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v1.1.0
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling toml_edit v0.23.10+spec-1.0.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling insta v1.46.3
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling rstest_macros v0.26.1
[INFO] [stderr]    Compiling tokio-tungstenite v0.28.0
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling reinhardt-websockets v0.1.0-rc.14 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tokio-test v0.4.5
[INFO] [stderr]    Compiling rstest v0.26.1
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 18.94s
[INFO] running `Command { std: "docker" "inspect" "91ff8715ef0176080da206ae4989c0d121ee7cc485327bed0534501b19b7b251", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "91ff8715ef0176080da206ae4989c0d121ee7cc485327bed0534501b19b7b251", kill_on_drop: false }`
[INFO] [stdout] 91ff8715ef0176080da206ae4989c0d121ee7cc485327bed0534501b19b7b251
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1f7f8ea0721a3b1eb73e6c6d25cccb371434b320" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5f358efc3715a99d4117b624c50d36ed19981a1f9a610f68db84a9daca4c5924
[INFO] running `Command { std: "docker" "start" "-a" "5f358efc3715a99d4117b624c50d36ed19981a1f9a610f68db84a9daca4c5924", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/reinhardt_websockets-0e0eb548da484ff3)
[INFO] [stdout] 
[INFO] [stdout] running 240 tests
[INFO] [stdout] test auth::tests::test_simple_auth_user ... ok
[INFO] [stdout] test auth::tests::test_permission_based_policy_authorized ... ok
[INFO] [stdout] test auth::tests::test_authenticated_connection_send_with_auth_denied ... ok
[INFO] [stdout] test auth::tests::test_authenticated_connection_send_with_auth ... ok
[INFO] [stdout] test auth::tests::test_permission_based_policy_denied ... ok
[INFO] [stdout] test auth::tests::test_token_authenticator_invalid ... ok
[INFO] [stdout] test auth::tests::test_token_authenticator_valid ... ok
[INFO] [stdout] test channels::tests::test_channel_message_creation ... ok
[INFO] [stdout] test channels::tests::test_channel_layer_wrapper ... ok
[INFO] [stdout] test channels::tests::test_channel_message_metadata ... ok
[INFO] [stdout] test channels::tests::test_in_memory_channel_layer_clear ... ok
[INFO] [stdout] test channels::tests::test_in_memory_channel_layer_group_add ... ok
[INFO] [stdout] test channels::tests::test_in_memory_channel_layer_group_discard ... ok
[INFO] [stdout] test channels::tests::test_in_memory_channel_layer_send_receive ... ok
[INFO] [stdout] test connection::tests::test_close_with_reason_marks_closed_even_when_channel_dropped ... ok
[INFO] [stdout] test connection::tests::test_connection_config_default ... ok
[INFO] [stdout] test channels::tests::test_in_memory_channel_layer_group_send ... ok
[INFO] [stdout] test connection::tests::test_close_with_reason ... ok
[INFO] [stdout] test connection::tests::test_connection_config_with_custom_ping_config ... ok
[INFO] [stdout] test connection::tests::test_close_marks_closed_even_when_channel_dropped ... ok
[INFO] [stdout] test connection::tests::test_connection_config_has_default_ping_config ... ok
[INFO] [stdout] test connection::tests::test_heartbeat_config_custom ... ok
[INFO] [stdout] test connection::tests::test_heartbeat_config_default ... ok
[INFO] [stdout] test connection::tests::test_connection_config_permissive ... ok
[INFO] [stdout] test connection::tests::test_connection_with_config ... ok
[INFO] [stdout] test connection::tests::test_connection_config_no_timeout ... ok
[INFO] [stdout] test connection::tests::test_connection_send ... ok
[INFO] [stdout] test connection::tests::test_connection_config_strict ... ok
[INFO] [stdout] test connection::tests::test_force_close_marks_connection_closed ... ok
[INFO] [stdout] test connection::tests::test_connection_config_builder ... ok
[INFO] [stdout] test connection::tests::test_heartbeat_monitor_send_ping ... ok
[INFO] [stdout] test connection::tests::test_heartbeat_monitor_initial_state ... ok
[INFO] [stdout] test connection::tests::test_message_json ... ok
[INFO] [stdout] test connection::tests::test_permissive_config_has_relaxed_ping ... ok
[INFO] [stdout] test connection::tests::test_message_text ... ok
[INFO] [stdout] test connection::tests::test_ping_pong_config_builder ... ok
[INFO] [stdout] test connection::tests::test_timeout_monitor_register_and_count ... ok
[INFO] [stdout] test connection::tests::test_send_after_force_close_returns_error ... ok
[INFO] [stdout] test connection::tests::test_ping_pong_config_default ... ok
[INFO] [stdout] test connection::tests::test_websocket_error_heartbeat_timeout_variant ... ok
[INFO] [stdout] test connection::tests::test_websocket_error_binary_payload_variant ... ok
[INFO] [stdout] test connection::tests::test_timeout_monitor_rejects_when_max_connections_reached ... ok
[INFO] [stdout] test connection::tests::test_strict_config_has_aggressive_ping ... ok
[INFO] [stdout] test connection::tests::test_timeout_monitor_removes_already_closed_connections ... ok
[INFO] [stdout] test connection::tests::test_ping_pong_config_custom ... ok
[INFO] [stdout] test consumers::tests::test_consumer_context_cookie_header ... ok
[INFO] [stdout] test consumers::tests::test_broadcast_consumer_disconnect_cleanup ... ok
[INFO] [stdout] test connection::tests::test_timeout_monitor_unregister ... ok
[INFO] [stdout] test consumers::tests::test_consumer_context_cookie_header_missing ... ok
[INFO] [stdout] test consumers::tests::test_broadcast_consumer_disconnect_tolerates_already_removed ... ok
[INFO] [stdout] test consumers::tests::test_consumer_chain ... ok
[INFO] [stdout] test consumers::tests::test_consumer_context_creation ... ok
[INFO] [stdout] test connection::tests::test_websocket_error_slow_consumer_variant ... ok
[INFO] [stdout] test consumers::tests::test_consumer_context_headers ... ok
[INFO] [stdout] test consumers::tests::test_consumer_context_headers_default_empty ... ok
[INFO] [stdout] test consumers::tests::test_consumer_context_metadata ... ok
[INFO] [stdout] test consumers::tests::test_echo_consumer_binary_non_utf8_message ... ok
[INFO] [stdout] test consumers::tests::test_echo_consumer_connect ... ok
[INFO] [stdout] test consumers::tests::test_echo_consumer_handles_close_message ... ok
[INFO] [stdout] test consumers::tests::test_echo_consumer_binary_utf8_message ... ok
[INFO] [stdout] test consumers::tests::test_echo_consumer_message ... ok
[INFO] [stdout] test metrics::tests::test_bytes_sent_saturates_instead_of_wrapping ... ok
[INFO] [stdout] test consumers::tests::test_json_consumer_binary_invalid_utf8_returns_error ... ok
[INFO] [stdout] test consumers::tests::test_json_consumer_binary_invalid_json_returns_error ... ok
[INFO] [stdout] test metrics::tests::test_metrics_creation ... ok
[INFO] [stdout] test metrics::tests::test_disconnection_does_not_underflow ... ok
[INFO] [stdout] test consumers::tests::test_json_consumer_binary_valid_json ... ok
[INFO] [stdout] test metrics::tests::test_record_disconnection ... ok
[INFO] [stdout] test metrics::tests::test_record_connection ... ok
[INFO] [stdout] test metrics::tests::test_record_bytes ... ok
[INFO] [stdout] test consumers::tests::test_json_consumer_connect ... ok
[INFO] [stdout] test metrics::tests::test_record_error ... ok
[INFO] [stdout] test metrics::tests::test_record_messages ... ok
[INFO] [stdout] test metrics::tests::test_reset ... ok
[INFO] [stdout] test metrics::tests::test_snapshot_summary ... ok
[INFO] [stdout] test middleware::tests::test_connection_context ... ok
[INFO] [stdout] test middleware::tests::test_ip_filter_blacklist_allowed ... ok
[INFO] [stdout] test middleware::tests::test_ip_filter_blacklist_blocked ... ok
[INFO] [stdout] test middleware::tests::test_ip_filter_whitelist_allowed ... ok
[INFO] [stdout] test middleware::tests::test_ip_filter_whitelist_blocked ... ok
[INFO] [stdout] test middleware::tests::test_logging_middleware_connect ... ok
[INFO] [stdout] test middleware::tests::test_logging_middleware_message ... ok
[INFO] [stdout] test middleware::tests::test_message_size_limit_custom_configuration ... ok
[INFO] [stdout] test middleware::tests::test_message_size_limit_binary_messages ... ok
[INFO] [stdout] test middleware::tests::test_message_size_limit_control_frames_always_pass ... ok
[INFO] [stdout] test middleware::tests::test_message_size_limit_default_accepts_normal_messages ... ok
[INFO] [stdout] test middleware::tests::test_message_size_limit_default_is_1mb ... ok
[INFO] [stdout] test middleware::tests::test_message_size_limit_exceeds_limit ... ok
[INFO] [stdout] test middleware::tests::test_message_size_limit_sends_close_frame_on_rejection ... ok
[INFO] [stdout] test middleware::tests::test_middleware_chain_message ... ok
[INFO] [stdout] test middleware::tests::test_middleware_chain_rejection ... ok
[INFO] [stdout] test middleware::tests::test_message_size_limit_within_limit ... ok
[INFO] [stdout] test middleware::tests::test_middleware_chain_connect ... ok
[INFO] [stdout] test middleware::tests::test_middleware_chain_with_default_size_limit ... ok
[INFO] [stdout] test origin::tests::test_allow_all_policy_accepts_any_origin ... ok
[INFO] [stdout] test origin::tests::test_allow_list_rejects_invalid_origin ... ok
[INFO] [stdout] test origin::tests::test_allows_missing_origin_when_configured ... ok
[INFO] [stdout] test origin::tests::test_allow_list_accepts_valid_origin ... ok
[INFO] [stdout] test origin::tests::test_empty_allow_list_rejects_all_origins ... ok
[INFO] [stdout] test origin::tests::test_empty_origin_header_rejected_when_required ... ok
[INFO] [stdout] test origin::tests::test_multiple_allowed_origins ... ok
[INFO] [stdout] test origin::tests::test_case_insensitive_origin_comparison ... ok
[INFO] [stdout] test origin::tests::test_rejects_missing_origin_by_default ... ok
[INFO] [stdout] test origin::tests::test_on_disconnect_always_succeeds ... ok
[INFO] [stdout] test origin::tests::test_validate_origin_function_invalid ... ok
[INFO] [stdout] test origin::tests::test_trailing_slash_normalization ... ok
[INFO] [stdout] test origin::tests::test_validate_origin_function_allow_all ... ok
[INFO] [stdout] test origin::tests::test_validate_origin_function_missing_allowed ... ok
[INFO] [stdout] test middleware::tests::test_message_size_limit_default_rejects_oversized_messages ... ok
[INFO] [stdout] test protocol::tests::test_custom_limits ... ok
[INFO] [stdout] test origin::tests::test_validate_origin_function_missing_rejected ... ok
[INFO] [stdout] test protocol::tests::test_default_constants ... ok
[INFO] [stdout] test protocol::tests::test_default_websocket_config_has_frame_size_limit ... ok
[INFO] [stdout] test protocol::tests::test_default_websocket_config_has_message_size_limit ... ok
[INFO] [stdout] test origin::tests::test_validate_origin_function_valid ... ok
[INFO] [stdout] test protocol::tests::test_no_limits ... ok
[INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_disabled ... ok
[INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_disconnect_and_reconnect ... ok
[INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_exhausted ... ok
[INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_new ... ok
[INFO] [stdout] test reconnection::tests::test_backoff_does_not_overflow_at_high_retry_counts ... ok
[INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_on_connected_resets ... ok
[INFO] [stdout] test reconnection::tests::test_config_builder ... ok
[INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_exponential_backoff ... ok
[INFO] [stdout] test reconnection::tests::test_default_config ... ok
[INFO] [stdout] test reconnection::tests::test_max_delay_cap ... ok
[INFO] [stdout] test reconnection::tests::test_auto_reconnect_handler_with_callback ... ok
[INFO] [stdout] test reconnection::tests::test_reconnection_state_variants ... ok
[INFO] [stdout] test reconnection::tests::test_exponential_backoff ... ok
[INFO] [stdout] test reconnection::tests::test_jitter_applied ... ok
[INFO] [stdout] test reconnection::tests::test_reconnection_strategy ... ok
[INFO] [stdout] test reconnection::tests::test_reset ... ok
[INFO] [stdout] test reconnection::tests::test_strategy_config_accessor ... ok
[INFO] [stdout] test reconnection::tests::test_unlimited_attempts ... ok
[INFO] [stdout] test room::tests::test_broadcast_complete_failure ... ok
[INFO] [stdout] test room::tests::test_broadcast_empty_room ... ok
[INFO] [stdout] test room::tests::test_broadcast_partial_failure_reports_failed_clients ... ok
[INFO] [stdout] test room::tests::test_broadcast_partial_failure_removes_dead_connections ... ok
[INFO] [stdout] test room::tests::test_broadcast_to_all_aggregates_results ... ok
[INFO] [stdout] test room::tests::test_broadcast_to_room_returns_broadcast_result ... ok
[INFO] [stdout] test room::tests::test_broadcast_with_timeout_empty_room ... ok
[INFO] [stdout] test room::tests::test_broadcast_to_room_with_timeout ... ok
[INFO] [stdout] test room::tests::test_broadcast_to_room_with_timeout_nonexistent_room ... ok
[INFO] [stdout] test room::tests::test_broadcast_with_timeout_removes_dead_connections ... ok
[INFO] [stdout] test room::tests::test_broadcast_with_timeout_succeeds_for_responsive_clients ... ok
[INFO] [stdout] test room::tests::test_room_client_ids ... ok
[INFO] [stdout] test room::tests::test_room_broadcast ... ok
[INFO] [stdout] test room::tests::test_room_join_duplicate_client ... ok
[INFO] [stdout] test room::tests::test_room_join_client ... ok
[INFO] [stdout] test room::tests::test_room_is_empty ... ok
[INFO] [stdout] test room::tests::test_room_leave_client ... ok
[INFO] [stdout] test room::tests::test_room_manager_cleanup_empty_rooms ... ok
[INFO] [stdout] test room::tests::test_room_manager_create_room ... ok
[INFO] [stdout] test room::tests::test_room_leave_nonexistent_client ... ok
[INFO] [stdout] test room::tests::test_room_manager_delete_nonexistent_room ... ok
[INFO] [stdout] test room::tests::test_room_manager_delete_room ... ok
[INFO] [stdout] test room::tests::test_room_manager_get_or_create_room ... ok
[INFO] [stdout] test room::tests::test_room_manager_get_room ... ok
[INFO] [stdout] test room::tests::test_room_manager_has_room ... ok
[INFO] [stdout] test room::tests::test_room_metadata_get_nonexistent ... ok
[INFO] [stdout] test room::tests::test_room_manager_new ... ok
[INFO] [stdout] test room::tests::test_room_metadata_remove ... ok
[INFO] [stdout] test room::tests::test_room_manager_room_ids ... ok
[INFO] [stdout] test room::tests::test_room_metadata_clear ... ok
[INFO] [stdout] test room::tests::test_room_metadata_set_and_get ... ok
[INFO] [stdout] test room::tests::test_room_send_to_nonexistent_client ... ok
[INFO] [stdout] test room::tests::test_room_new ... ok
[INFO] [stdout] test room::tests::test_room_send_to_specific_client ... ok
[INFO] [stdout] test routing::tests::test_global_router_registration ... ok
[INFO] [stdout] test routing::tests::test_reverse_websocket_url ... ok
[INFO] [stdout] test routing::tests::test_router_all_routes ... ok
[INFO] [stdout] test routing::tests::test_router_clear ... ok
[INFO] [stdout] test routing::tests::test_router_find_route ... ok
[INFO] [stdout] test routing::tests::test_router_has_route ... ok
[INFO] [stdout] test routing::tests::test_router_register_duplicate_route ... ok
[INFO] [stdout] test routing::tests::test_router_find_route_by_name ... ok
[INFO] [stdout] test routing::tests::test_router_register_route ... ok
[INFO] [stdout] test routing::tests::test_websocket_route_creation ... ok
[INFO] [stdout] test routing::tests::test_websocket_route_metadata ... ok
[INFO] [stdout] test routing::tests::test_router_remove_route ... ok
[INFO] [stdout] test tests::test_get_all_rooms ... ok
[INFO] [stdout] test tests::test_websocket_binary_messages ... ok
[INFO] [stdout] test tests::test_basic_websocket_communication ... ok
[INFO] [stdout] test tests::test_broadcast_to_all_rooms ... ok
[INFO] [stdout] test tests::test_websocket_close_with_reason ... ok
[INFO] [stdout] test tests::test_websocket_invalid_data ... ok
[INFO] [stdout] test tests::test_websocket_dependency_after_yield ... ok
[INFO] [stdout] test tests::test_websocket_multiple_clients_with_room ... ok
[INFO] [stdout] test tests::test_websocket_no_credentials ... ok
[INFO] [stdout] test tests::test_websocket_dependency_after_yield_broken ... ok
[INFO] [stdout] test tests::test_websocket_handle_disconnection ... ok
[INFO] [stdout] test tests::test_websocket_json_messages ... ok
[INFO] [stdout] test tests::test_websocket_ping_pong ... ok
[INFO] [stdout] test tests::test_websocket_with_query_token ... ok
[INFO] [stdout] test throttling::tests::test_combined_throttler ... ok
[INFO] [stdout] test tests::test_websocket_with_cookie_auth ... ok
[INFO] [stdout] test throttling::tests::test_connection_rate_limiter_clear_all ... ok
[INFO] [stdout] test throttling::tests::test_connection_rate_limiter_accessors ... ok
[INFO] [stdout] test throttling::tests::test_connection_rate_limiter_exceeds_limit ... ok
[INFO] [stdout] test throttling::tests::test_connection_rate_limiter_get_current_count ... ok
[INFO] [stdout] test throttling::tests::test_connection_rate_limiter_within_limit ... ok
[INFO] [stdout] test throttling::tests::test_connection_throttler_exceeds_limit ... ok
[INFO] [stdout] test throttling::tests::test_connection_throttler_get_count ... ok
[INFO] [stdout] test throttling::tests::test_connection_throttler_independent_ips ... ok
[INFO] [stdout] test connection::tests::test_heartbeat_monitor_no_timeout_when_pong_received ... ok
[INFO] [stdout] test tests::test_websocket_with_token_and_query ... ok
[INFO] [stdout] test throttling::tests::test_connection_rate_limiter_independent_ips ... ok
[INFO] [stdout] test connection::tests::test_heartbeat_monitor_record_pong_resets_timer ... ok
[INFO] [stdout] test throttling::tests::test_connection_throttler_release ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_config_new ... ok
[INFO] [stdout] test throttling::tests::test_connection_throttler_within_limit ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_config_presets ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_middleware_allows_connection ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_middleware_accessors ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_middleware_allows_message_within_limit ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_middleware_in_chain ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_middleware_rejects_connection_rate_exceeded ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_middleware_on_disconnect_releases_slot ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_middleware_release_connection ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_middleware_with_defaults ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_middleware_message_in_chain ... ok
[INFO] [stdout] test throttling::tests::test_rate_limiter_exceeds_limit ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_middleware_rejects_message_rate_exceeded ... ok
[INFO] [stdout] test throttling::tests::test_rate_limit_middleware_rejects_concurrent_exceeded ... ok
[INFO] [stdout] test throttling::tests::test_rate_limiter_get_count ... ok
[INFO] [stdout] test throttling::tests::test_rate_limiter_independent_clients ... ok
[INFO] [stdout] test throttling::tests::test_websocket_rate_limit_config_default ... ok
[INFO] [stdout] test throttling::tests::test_websocket_rate_limit_config_builder ... ok
[INFO] [stdout] test throttling::tests::test_rate_limiter_reset ... ok
[INFO] [stdout] test throttling::tests::test_websocket_rate_limit_config_strict ... ok
[INFO] [stdout] test throttling::tests::test_websocket_rate_limit_config_permissive ... ok
[INFO] [stdout] test throttling::tests::test_rate_limiter_within_limit ... ok
[INFO] [stdout] test connection::tests::test_heartbeat_monitor_timeout_closes_connection ... ok
[INFO] [stdout] test connection::tests::test_heartbeat_monitor_early_pong_skips_full_sleep ... ok
[INFO] [stdout] test connection::tests::test_send_resets_activity ... ok
[INFO] [stdout] test connection::tests::test_connection_becomes_idle_after_timeout ... ok
[INFO] [stdout] test connection::tests::test_connection_record_activity_resets_idle ... ok
[INFO] [stdout] test connection::tests::test_timeout_monitor_closes_idle_connections ... ok
[INFO] [stdout] test throttling::tests::test_connection_rate_limiter_window_expiry ... ok
[INFO] [stdout] test connection::tests::test_timeout_monitor_background_task ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 240 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/auth_integration.rs (/opt/rustwide/target/debug/deps/auth_integration-d1604a9c9e86403f)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test test_authenticated_connection_send_with_auth_denied ... ok
[INFO] [stdout] test test_authenticated_connection_multiple_messages ... ok
[INFO] [stdout] test test_authorization_policy_unknown_action ... ok
[INFO] [stdout] test test_authorization_policy_denied ... ok
[INFO] [stdout] test test_mock_authenticator_admin_token ... ok
[INFO] [stdout] test test_mock_authenticator_invalid_token ... ok
[INFO] [stdout] test test_authenticated_connection_send_with_auth_success ... ok
[INFO] [stdout] test test_authorization_policy_authorized ... ok
[INFO] [stdout] test test_mock_authenticator_valid_token ... ok
[INFO] [stdout] test test_multiple_permission_levels ... ok
[INFO] [stdout] test test_token_authentication_invalid ... ok
[INFO] [stdout] test test_token_authentication_valid ... ok
[INFO] [stdout] test test_token_authentication_multiple_users ... ok
[INFO] [stdout] test test_user_permission_checks ... ok
[INFO] [stdout] test test_unauthenticated_user ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/connection_integration.rs (/opt/rustwide/target/debug/deps/connection_integration-176515d84c995ebf)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_json_message_serialization ... ok
[INFO] [stdout] test test_reinhardt_websocket_connection ... ok
[INFO] [stdout] test test_connection_establishment ... ok
[INFO] [stdout] test test_connection_close ... ok
[INFO] [stdout] test test_ping_pong_heartbeat ... ok
[INFO] [stdout] test test_binary_message_transmission ... ok
[INFO] [stdout] test test_multiple_concurrent_clients ... ok
[INFO] [stdout] test test_large_message_transmission ... ok
[INFO] [stdout] test test_reconnection_after_drop ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests reinhardt_websockets
[INFO] [stdout] 
[INFO] [stdout] running 141 tests
[INFO] [stdout] test src/auth.rs - auth::AuthenticatedConnection (line 281) ... ok
[INFO] [stdout] test src/auth.rs - auth::PermissionBasedPolicy (line 211) ... ok
[INFO] [stdout] test src/auth.rs - auth::TokenAuthenticator (line 126) ... ok
[INFO] [stdout] test src/auth.rs - auth::SimpleAuthUser (line 49) ... ok
[INFO] [stdout] test src/channels.rs - channels::InMemoryChannelLayer (line 116) ... ok
[INFO] [stdout] test src/channels.rs - channels::ChannelMessage (line 43) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::new (line 176) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::permissive (line 384) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::no_timeout (line 332) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::strict (line 357) ... ok
[INFO] [stdout] test src/connection.rs - connection::HeartbeatMonitor (line 1286) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionConfig (line 135) ... ok
[INFO] [stdout] test src/channels.rs - channels::ChannelLayerWrapper (line 265) ... ok
[INFO] [stdout] test src/connection.rs - connection::HeartbeatConfig (line 1229) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::with_cleanup_interval (line 241) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::with_ping_config (line 304) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionTimeoutMonitor (line 1055) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::with_idle_timeout (line 197) ... ok
[INFO] [stdout] test src/connection.rs - connection::Message::binary (line 530) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::with_max_connections (line 278) ... ok
[INFO] [stdout] test src/connection.rs - connection::PingPongConfig::with_ping_interval (line 91) ... ok
[INFO] [stdout] test src/connection.rs - connection::PingPongConfig::new (line 59) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::idle_duration (line 777) ... ok
[INFO] [stdout] test src/connection.rs - connection::PingPongConfig::with_pong_timeout (line 108) ... ok
[INFO] [stdout] test src/connection.rs - connection::Message::parse_json (line 580) ... ok
[INFO] [stdout] test src/connection.rs - connection::Message::json (line 547) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::close (line 941) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionConfig::with_handshake_timeout (line 219) ... ok
[INFO] [stdout] test src/connection.rs - connection::Message::text (line 514) ... ok
[INFO] [stdout] test src/connection.rs - connection::PingPongConfig (line 15) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::force_close (line 1011) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::close_with_reason (line 973) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::id (line 732) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::with_subprotocol (line 680) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::new (line 625) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::record_activity (line 757) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::is_idle (line 798) ... ok
[INFO] [stdout] test src/consumers.rs - consumers::ConsumerChain (line 605) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::send_binary (line 879) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::is_closed (line 1031) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::send (line 820) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::send_text (line 855) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::with_config (line 648) ... ok
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::subprotocol (line 712) ... ok
[INFO] [stdout] test src/lib.rs - (line 102) ... ignored
[INFO] [stdout] test src/lib.rs - (line 121) ... ignored
[INFO] [stdout] test src/connection.rs - connection::WebSocketConnection::send_json (line 904) ... ok
[INFO] [stdout] test src/handler.rs - handler::WebSocketHandler::reconnection_config (line 28) - compile ... ok
[INFO] [stdout] test src/lib.rs - consumers (line 167) - compile ... ok
[INFO] [stdout] test src/consumers.rs - consumers::BroadcastConsumer (line 405) ... ok
[INFO] [stdout] test src/consumers.rs - consumers::JsonConsumer (line 492) ... ok
[INFO] [stdout] test src/consumers.rs - consumers::ConsumerContext (line 61) ... ok
[INFO] [stdout] test src/metrics.rs - metrics::WebSocketMetrics (line 111) ... ok
[INFO] [stdout] test src/lib.rs - (line 20) ... ok
[INFO] [stdout] test src/consumers.rs - consumers::EchoConsumer (line 298) ... ok
[INFO] [stdout] test src/metrics.rs - metrics::PeriodicReporter<F>::start (line 402) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 54) ... ok
[INFO] [stdout] test src/lib.rs - metrics (line 172) ... ok
[INFO] [stdout] test src/consumers.rs - consumers::ConsumerContext::new (line 91) ... ok
[INFO] [stdout] test src/metrics.rs - metrics::PeriodicReporter (line 340) ... ok
[INFO] [stdout] test src/metrics.rs - metrics::MetricsSnapshot::summary (line 55) ... ok
[INFO] [stdout] test src/middleware.rs - middleware::ConnectionContext::new (line 45) ... ok
[INFO] [stdout] test src/metrics.rs - metrics::PeriodicReporter<F>::new (line 376) ... ok
[INFO] [stdout] test src/lib.rs - origin (line 177) ... ok
[INFO] [stdout] test src/metrics.rs - metrics::WebSocketMetrics::new (line 139) ... ok
[INFO] [stdout] test src/lib.rs - reconnection (line 180) ... ok
[INFO] [stdout] test src/lib.rs - (line 78) ... ok
[INFO] [stdout] test src/middleware.rs - middleware::IpFilterMiddleware (line 202) ... ok
[INFO] [stdout] test src/origin.rs - origin::OriginValidationMiddleware (line 82) ... ok
[INFO] [stdout] test src/middleware.rs - middleware::MessageSizeLimitMiddleware (line 291) ... ok
[INFO] [stdout] test src/middleware.rs - middleware::MiddlewareChain (line 375) ... ok
[INFO] [stdout] test src/protocol.rs - protocol::websocket_config_with_limits (line 42) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::disabled (line 452) ... ok
[INFO] [stdout] test src/middleware.rs - middleware::LoggingMiddleware (line 123) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::new (line 433) ... ok
[INFO] [stdout] test src/protocol.rs - protocol::default_websocket_config (line 19) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler (line 408) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::on_reconnect_success (line 567) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::on_disconnect (line 508) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::on_connected (line 603) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_initial_delay (line 162) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::default (line 76) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_backoff_multiplier (line 196) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::AutoReconnectHandler::state (line 487) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_jitter_factor (line 212) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_max_delay (line 179) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionStrategy::attempt_count (line 257) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_max_attempts (line 130) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::with_unlimited_attempts (line 146) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionStrategy::reset (line 353) ... ok
[INFO] [stdout] test src/room.rs - room::Room (line 83) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionConfig::new (line 103) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionStrategy::next_delay (line 276) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionStrategy::can_reconnect (line 374) ... ok
[INFO] [stdout] test src/reconnection.rs - reconnection::ReconnectionStrategy::new (line 237) ... ok
[INFO] [stdout] test src/room.rs - room::Room::has_client (line 445) ... ok
[INFO] [stdout] test src/room.rs - room::Room::broadcast_with_timeout (line 276) ... ok
[INFO] [stdout] test src/room.rs - room::Room::is_empty (line 581) ... ok
[INFO] [stdout] test src/room.rs - room::Room::clear_metadata (line 556) ... ok
[INFO] [stdout] test src/room.rs - room::Room::broadcast (line 212) ... ok
[INFO] [stdout] test src/room.rs - room::Room::id (line 128) ... ok
[INFO] [stdout] test src/room.rs - room::Room::join (line 142) ... ok
[INFO] [stdout] test src/room.rs - room::Room::leave (line 176) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::broadcast_to_all (line 1040) ... ok
[INFO] [stdout] test src/connection.rs - connection::ConnectionTimeoutMonitor::start (line 1192) ... ok
[INFO] [stdout] test src/room.rs - room::Room::get_metadata (line 500) ... ok
[INFO] [stdout] test src/room.rs - room::Room::send_to (line 339) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager (line 608) ... ok
[INFO] [stdout] test src/room.rs - room::Room::new (line 110) ... ok
[INFO] [stdout] test src/room.rs - room::Room::client_ids (line 412) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::broadcast_to_room_with_timeout (line 995) ... ok
[INFO] [stdout] test src/room.rs - room::Room::remove_metadata (line 533) ... ok
[INFO] [stdout] test src/room.rs - room::Room::client_count (line 381) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::cleanup_empty_rooms (line 813) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::broadcast_to_room (line 953) ... ok
[INFO] [stdout] test src/room.rs - room::Room::set_metadata (line 472) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::get_or_create_room (line 692) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::get_all_rooms (line 1084) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::get_room (line 668) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::delete_room (line 720) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::leave_room (line 890) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::room_ids (line 769) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::room_count (line 747) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::has_room (line 793) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::get_room_size (line 920) ... ok
[INFO] [stdout] test src/routing.rs - routing::WebSocketRoute (line 34) ... ok
[INFO] [stdout] test src/routing.rs - routing::register_websocket_router (line 231) ... ok
[INFO] [stdout] test src/routing.rs - routing::WebSocketRouter (line 93) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::new (line 628) ... ok
[INFO] [stdout] test src/routing.rs - routing::reverse_websocket_url (line 260) ... ok
[INFO] [stdout] test src/throttling.rs - throttling::ConnectionThrottler (line 237) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::create_room (line 646) ... ok
[INFO] [stdout] test src/throttling.rs - throttling::ConnectionRateLimiter (line 385) ... ok
[INFO] [stdout] test src/throttling.rs - throttling::RateLimitConfig (line 52) ... ok
[INFO] [stdout] test src/room.rs - room::RoomManager::join_room (line 856) ... ok
[INFO] [stdout] test src/throttling.rs - throttling::RateLimitConfig::strict (line 108) ... ok
[INFO] [stdout] test src/throttling.rs - throttling::RateLimitMiddleware (line 653) ... ok
[INFO] [stdout] test src/throttling.rs - throttling::CombinedThrottler (line 319) ... ok
[INFO] [stdout] test src/throttling.rs - throttling::RateLimitConfig::permissive (line 94) ... ok
[INFO] [stdout] test src/throttling.rs - throttling::WebSocketRateLimitConfig (line 501) ... ok
[INFO] [stdout] test src/throttling.rs - throttling::RateLimiter (line 163) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 139 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 5.54s; merged doctests compilation took 5.41s
[INFO] running `Command { std: "docker" "inspect" "5f358efc3715a99d4117b624c50d36ed19981a1f9a610f68db84a9daca4c5924", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f358efc3715a99d4117b624c50d36ed19981a1f9a610f68db84a9daca4c5924", kill_on_drop: false }`
[INFO] [stdout] 5f358efc3715a99d4117b624c50d36ed19981a1f9a610f68db84a9daca4c5924
